home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / c / pthd-0.000 / pthd-0 / pthd-0.7 / src_tgrep / src-match / pmatch.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-08-15  |  1.8 KB  |  65 lines

  1. /*
  2.  * PMATCH.H - manifests and typedefs for use which pmatch
  3.  *
  4.  * pattern allows certian metachars:
  5.  *        . - match any character
  6.  *        * - match 0 or more occurrences of pervious char
  7.  *        + - match 1 or more occurrences of pervious char.
  8.  *        ^ - match at begining of string
  9.  *        $ - match end of string
  10.  *        [ - start of character class
  11.  *        ] - end of character class
  12.  *        ( - start of a new pattern
  13.  *        ) - end of a new pattern
  14.  *        @(n)c - match <c> at column <n>
  15.  *        | - match either pattern
  16.  *        \ - escape any special characters
  17.  *           \c - escape any special characters
  18.  *        \o - turn on any special characters
  19.  *
  20.  * witten: Marc Staveley, Aug/82
  21.  * last modified: Marc Staveley, May/84
  22.  */
  23.  
  24. #ifndef PMATCH_DEFINED
  25. #define PMATCH_DEFINED
  26.  
  27. /* #include "mydefs.h" */
  28. /* #include <types.h> */
  29. /* #include <sys/types.h> */
  30.  
  31. #if 0
  32. typedef struct _pattern_ {
  33.     u_int    p_type;            /* the type of metacharacter */
  34.     char    p_c;            /* the character to match */
  35.     char    *p_ccl;            /* the class of characters to match */
  36.     int    p_col;            /* character must be at column col */
  37.     struct _pattern_ *p_next;    /* ^ to next element in pattern */
  38.     struct _pattern_ *p_alt;    /* ^ to alternate element in pattern */
  39. } PATTERN;
  40. #endif
  41.  
  42. typedef struct _pattern_
  43. {
  44.     struct _pattern_ *next;     /* ^ to next element in pattern */
  45.     unsigned int type;          /* the type of metacharacter */
  46.     char *ccl;                  /* the class of characters to match */
  47.     int col;                    /* character must be at column col to match */
  48.     struct _pattern_ *alt;      /* ^ to alternate element in pattern */
  49.     char c;                     /* the character to match */
  50.  
  51. } PATTERN;
  52.  
  53. extern char *
  54. pmatch( register PATTERN *pattern, register char *string, int *len );
  55.  
  56. extern PATTERN *
  57. makepat( char *string, char *metas );
  58.  
  59. extern void 
  60. freepat( register PATTERN *pattern );
  61.  
  62. #endif /* PMATCH_DEFINED */
  63.  
  64.  
  65.